ananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananas